Взламываем сеть при помощи ESP32

b593c0f7071a3071cbdf08c9c4d072be.jpg

Введение

Семейство микроконтроллеров ESP имеет кучу применений как в повседневной жизни, так и в узких отраслях. Рассмотрим микроконтроллер ESP32, так же его интересную прошивку.

WARNING

Важно отметить, что прошивка платы ESP32 для тестирования Wi-Fi на уязвимости должна использоваться исключительно в рамках законных и этичных целей. Автор статьи не несёт ответственности за неправомерное использование данной информации или применение её в целях нарушения законодательства. Любые действия, основанные на данной статье, должны быть согласованы с соответствующими законами и нормативными актами.

ESP32

ESP32 — это микроконтроллер, разаработанный компанией Espressif Systems. Он представяет собой высокопроизводительный чип, который объединяет в себе процессоры Xtensa LX6 и два ядра Wi-Fi/Bluetooth. Чип является отличным выбором для разработки умных устройств, датчиков, беспроводных коммуникаций и других проектов. «Старший брат» всеми известной ESP266. ESP32 также имеет широкую поддержку со стороны сообщества разработчиков. Чип стоит сущие копейки, в интернет-магазинах его можно встретить по цене в районе 300–400р.

3fd6ad2902d1751b310963518cd9dfa4.jpg

ESP32 Wi-Fi Penetration Tool

Проект представляет собой универсальный инструмент на платформе ESP32 для реализации атак на Wi-Fi.

Включает в себя:

  • Захват и анализ рукопожатия WPA/WPA2

  • Преобразование захваченных рукопожатий в файл HCCAPX, для брутфорса в Hashcat.

  • Атаки деаутентификации с использованием различных методов.

  • Атаки отказа в обслуживании.

  • Форматирование захваченного трафика в формат PCAP.

  • Точка доступа для управления через веб-интерфейс.

Так же проект является частью диссертации самого разработчика risinek, полной академической статьёй можно ознакомиться здесь.

34273d32585a57e6c2be527e94a5d678.jpg

Установка прошивки с Linux

Установка осуществляется довольно простым образом, для начала установим библиотеку python для работы с ESP.

pip install esptool

Установка esptool

15656cbdf7cb48ed35fc0553b69a6329.png

После чего скачиваем сам репозиторий в любую удобную нам папку.

git clone https://github.com/risinek/esp32-wifi-penetration-tool

Скачиваем репозиторий

0630eec3efa55535eb0b454ce832a3db.png

Теперь важный момент, для установки прошивки нам необходимо знать к какому физическому порту подключен наш микроконтроллер, в Windows это посмотреть довольно просто. В Linux же несколько сложнее, в плане поиска нужной нам команды.

Команда называется dmesg, для начала запустим её так просто, чтобы посмотреть что она выведет.

Вывод кманды dmesg

ff93f6917597415443dc58dc42b3d4a2.png

Теперь подключим наш чип и снова воспользуемся нашей командой.

a6a4817f0b86fc46a5599e1dced473f0.png

Ориентируемся на последние строки и видим что новое USB-устройство было замечено на порту ttyUSB0. Теперь когда мы знаем нужный порт, заходим в директорию нашего инструмента и вводим команду установки с официальной страницы.

esptool -p /dev/ttyS5 -b 115200 --after hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size detect 0x8000 build/partition_table/partition-table.bin 0x1000 build/bootloader/bootloader.bin 0x10000 build/esp32-wifi-penetration-tool.bin

Важно: в строке /dev/ttyS5 изменяем значение на свой порт!

Ожидаем завершения установки и переподключаем наше устройство к питанию. После чего ищем Wi-Fi точку с именем ManagementAP и вводим пароль от точки mgmtadmin. После подключения переходим в панель управления которая находится по адресу 192.168.4.1 и видим наш веб-клиент для настройки и управления инструментом.

Важно: по моим личным наблюдениям, панель управления лучше всего открывать с браузера Firefox, именно на нём он работает стабильней всего!

Тестируем прошивку

Ну что же, нас приветствует донельзя простой интерфейс в котором виден диапазон беспроводных сетей и собственно действия над ними. Рассмотрим всё по-порядку.

Интерфейс

7abf0748b1bcf277d88bf41a4ed35f46.png41118c52aae274d51d2d0fa9d2e400da.png

В данном случае все действия будут проводиться над моей Wi-Fi точкой ELTX-2.4GHz_WiFi_5F60. Для атаки нужно просто нажать на нужную вам беспроводную сеть и выбрать какие действия над ней совершать в пункте Attack type и Attack method. В пункте Attack timeout продолжительность атаки. После каждой атаки нас будет отключать от чипа, поэтому нужно переподключаться к нему по точке доступа

PMKID

Немного теории

PMKID (Pairwise Master Key Identifier) — это идентификатор мастера ключа, используемый в протоколе WPA/WPA2 для безопасности беспроводных сетей. PMKID генерируется на основе пароля (PSK) и SSID сети. Он используется для установления безопасного соединения между устройствами и точкой доступа.

EAPOL (Extensible Authentication Protocol over LAN) — это протокол аутентификации, используемый в беспроводных сетях (Wi-Fi) для установления безопасного соединения между клиентским устройством и точкой доступа. EAPOL обеспечивает защиту от несанкционированного доступа и поддерживает различные методы аутентификации, такие как EAP-TLS, EAP-TTLS, PEAP и другие.

В 2018 году участниками hashcat был раскрыт новый тип атаки, который не только полагается на один пакет, так ещё и не требует для этого подключенных клиентов. Многие современные маршрутизаторы прибавляют дополнительное поле в конце первого EAPOL кадра, отправленного самим AP. PMKID получается с использованием данных, которые известны нам.

PMKID вычисляется с использованием HMAC-SHA1, где ключ является PMK, а часть данных представляет собой конкатенацию фиксированной строковой метки «PMK Name», MAC-адрес точки доступа и MAC-адрес станции.

PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)

Поскольку PMK такой же, как в обычном четырехстороннем рукопожатии EAPOL, это идеальный вектор атаки. Мы получаем все необходимые данные в первом кадре EAPOL из AP.

Практика

Выбираем нашу сеть и запускаем атаку PMKID на 5 секунд.

7b3c6722fab21ef442435c952e591655.png

Об успешной атаке будет свидетельствовать подобное сообщение. Здесь нам не нужен будет никакой файл для конвертации, как в случае с классической атакой на PMKID. Тут нам представлен уже готовый хеш для перебора пароля с помощью hashcat.

Поэтому далее мы пишем подобную команду, в которую вставляем готовый хеш с указанием нашего словаря.

hashcat -m 22000 хеш словарь.txt

90a3b4f0115f7ce3e8a99948d5c83de1.png

Вот вам и пароль от точки доступа, при этом никаких взаимодействий с пользователями!

Захват хендшейка

Немного теории

Если говорить простым языком, устройство на доли секунды посылает запросы на деаутентификацию пользователей и мониторит пакеты. Когда пользователь повторно подкючается к беспроводной сети, он посылает файл рукопожатия на точку доступа, в котором в зашифрованном виде хранится пароль. Собственно его наше устройство и перехватывает для дальнейшего взлома.

Практика

Выбираем нашу сеть, тип атаки, и в качестве метода берём активный захват (деаутентификация пользователей). Таймер можно поставить на минуту.

f90e0501ba47e58a99fde581d53b7500.png

При успешной атаке, нам высветиться примерно такой результат, с выбором загрузки обычного pcap файла или hccapx по-сути готовый формат для взлома в hashcat.

ed09eee0c2d10fac54155a7b30209067.png

Но посколько формат hccapx уже устарел для hashcat, может сделать проще и скачать обычный pcap файл и пробросить его через старый добрый aircrack-ng следующей командой.

aircrack-ng -w словарь.txt -b мак адрес -e Имя-точки-доступа файл.pcap

833e4a67252ef31a433778142faff189.png

Ну и собственно вот он наш пароль.

Отказ в обслуживании

Ну здесь у нас классическая глушилка, на ESP32 работает моментально, плюсом охватывает широкий диапазон.

50fd2f6dff801498ba3f055e18490e05.png

Заключение

Сети Wi-Fi крайне популярны и ими пользуется большинство людей. Вот что может с ними сделать маленький чип по цене чебурека. Поэтому защищаем свои беспроводные сети хорошим паролем, а лучше всего используем проводное соединение для большей безопасности.

LHMedia в телеграме:

Life-Hack — Хакер / Хакинг
Новостной канал
Канал с бесплатными видео курсами
Юмор

© Habrahabr.ru